package com.tedu.weibo.result;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

/*
* 同一结果响应
* Contriller处理任何请求后返回的结果格式统一,这样也便于前端的处理方式一致
* */
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class JsonResult {
    //状态码,用于告知前端某个具体业务请求处理的结果
    private Integer statusCode;
    //提示信息,用于让前端提示给用户处理结果
    private String message;
    //响应数据,处理某个业务后产生的需要在前端展示的数据(例如一个集合,或者某个VO等)
    private Object data;

    public JsonResult(Status status){
        this.statusCode=status.getStatusCode();
        this.message=status.getMessage();
    }

    public JsonResult(Status status,Object data){
        /*this.statusCode=status.getStatusCode();
        this.message=status.getMessage();*/
        this(status);
        this.data=data;
    }

    public static JsonResult success(){
        return new JsonResult(Status.OPERATION_SUCCESS);
        //return success(null);
    }

    public static JsonResult success(Object data){
        return new JsonResult(Status.OPERATION_SUCCESS,data);
    }
}
